/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package co.uniandes.patrones.entidades;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author alvar-go@uniandes.edu.co
 */
public class AdministradorSolicitudes {

    private List<Solicitud> solicitudes;

    private static AdministradorSolicitudes instancia;

    private  AdministradorSolicitudes(){
        solicitudes = new ArrayList<Solicitud>();
    }

    public static AdministradorSolicitudes getInstancia(){
        if(instancia == null){
            instancia = new AdministradorSolicitudes();
        }
        return instancia;
    }

    public List<Solicitud> getSolicitudes() {
        return solicitudes;
    }

    public void setSolicitudes(List<Solicitud> solicitudes) {
        this.solicitudes = solicitudes;
    }

    public void agregarSolicitud(Solicitud s){
        solicitudes.add(s);
    }

    public Solicitud darSolicitud(String placa){
        for(Solicitud s: solicitudes){
            if(s.getPlaca().equals(placa)){
                return s;
            }
        }
        return null;
    }

    public List<String> darSolicitudesCliente(String idCliente){
        ArrayList<String> resp = new ArrayList<String>();
        for(Solicitud s: solicitudes){
            if(s.getIdUsuario().equals(idCliente)){
                resp.add(s.getPlaca());
            }
        }
        return resp;
    }

    public List<Solicitud> darSolicitudesTaller(String idTaller){
        ArrayList<Solicitud> resp = new ArrayList<Solicitud>();
        for(Solicitud s: solicitudes){
            if(s.getTallerString().equals(idTaller) && !s.getEstado().equals(Solicitud.ESTADO_TERMINADA) &&  !s.getEstado().equals(Solicitud.ESTADO_CANCELADA)){
                resp.add(s);
            }
        }
        return resp;
    }

    public List<String> darSolicitudesTallerToString(String idTaller){
        ArrayList<String> resp = new ArrayList<String>();
        for(Solicitud s: solicitudes){
            if(s.getTallerString().equals(idTaller)){
                resp.add(s.getPlaca());
            }
        }
        return resp;
    }

    public List<String> darSolicitudesAceptar(){
        ArrayList<String> resp = new ArrayList<String>();
        for(Solicitud s: solicitudes){
            if(s.getEstado().equals(Solicitud.ESTADO_DESC_ENVIADA) || s.getEstado().equals(Solicitud.ESTADO_TERMINADA)){
                resp.add(s.getPlaca());
            }
        }
        return resp;
    }
}
